/**
 *类似于一个相册，用于展示图片用的，
 *结构已经思考好了，开始动手做 ok 灵蛇结构做完毕
 *
 *做一个图片切换类，考虑通用要
 *切换图片的终于弄明白了，原因是有东西没有清除干净,当lum效果的时候mc_pre是停在黑或者白的样子，而到了进入alpha的时候没有把他弄回去
 *！！所以切记，出了问题就打调试信息，别嫌麻烦！！！否则会更麻烦
 *
 *还有一个经验值就是fl.motion.easing里没有Regular这个东西
 *
 *------------
 *分析问题，这个做成一个通用的类,由外部xml控制
 *1,由外部提供一个xml
 *2，根据xml数序加载图片,注意如果只有一张图片就不要执行切换
 *
 *!!注意这个并不是很严密，如果有加载失败的情况下则会有问题的
 *
 *3,要做成点了这个就能切换东西的
 */

package kgame5.kgui.kcomp {
import flash.events.*;

//import kgame5.keff.kswitcher.*;


public class SmartBanner extends EventDispatcher {
	
//	public static const 
//		EVENTTYPE_A_NODE_OK:String="EVENTTYPE_A_NODE_OK",
//		EVENTTYPE_CHANGEPIC:String="EVENTTYPE_CHANGEPIC";//切换了图片
//		
//	
//	//切换图片的时候的效果
//	public static const 
//		EFFTYPE_ALPHA:int=1,
//		EFFTYPE_BLACK:int=2,
//		EFFTYPE_WHITE:int=3,
//		EFFTYPE_MASK:int=4,
//		EFFTYPE_NONE:int=5;
//		
//	//___________________Property____________________
//	
//	//--总模型
//	private var mc : MovieClip;
//
//	//--
//	private var snake : AgiSnake;//逐个加载图片用的，非常好用
//
//	//--
//	private var aPicMC : Array;//一个个pic的mc,他们是一个mc里包含图片的
//	
//	private var curIdx : int;//当前显示着的图片的索引
//	
//	private var curSwitcher:MCSwitcher;//图片效果切换器
//	private var 
//		switcherAlpha : MCSwitcherAlpha,
//		switcherBlack : MCSwitcherLum,//100是白-100是黑
//		switcherWhite : MCSwitcherLum,//100是白-100是黑
//		switcherMask : MCSwitcherMask,//遮罩
//		switcherNone : MCSwitcherNone;//不需要特效
//		
//	//要跳转到的地址，如果是"",则表示此地址不需要跳转
//	private var aGotoUrl:Array;
//	
//	//总区域的长和宽,-1表示是不知道
//	private var 
//		W:int=-1,
//		H:int=-1;
//	
//	//加载中的时候要显示一个loading	
//	private var eff_loading:EffLoading;
//	
//	//当地一个成功载入的时候的效果
//	private var firstEff:int;
//	//___________________Method_____________________
//
//	public function SmartBanner(p_mc : MovieClip,p_W:int,p_H:int,p_aMaskLinkID:Array=null) {
//		T.p("SmartBanner: "+p_mc.name);
//		//--
//		mc = p_mc;	
//		
//		W=p_W;
//		H=p_H;
//		
//		snake = new AgiSnake();
//		
//		//图片切换特效类
//		switcherAlpha=new MCSwitcherAlpha();
//		switcherBlack=new MCSwitcherLum(-1);//-1,1
//		switcherWhite=new MCSwitcherLum(1);//-1,1
//		if(p_aMaskLinkID!=null){
//			switcherMask=new MCSwitcherMask(W,H,p_aMaskLinkID);
//		}
//		switcherNone=new MCSwitcherNone();
//		
//		//loading动画
//		eff_loading=new EffLoading();
//		mc.addChild(eff_loading);	
//		eff_loading.x=W/2;
//		eff_loading.y=H/2;
//	}
//	
//	//Start之前必须要先clear()
//	
//	public function Start(aUrl : Array,p_aGotoUrl:Array=null,p_firstEff:int=1) {
//		T.p("StartBanner.Start");
//		firstEff=p_firstEff;
//		
//		aGotoUrl=p_aGotoUrl;
//		
//		T.p(aUrl);
//		T.p(aGotoUrl);
//		
//		curSwitcher=null;
//		
//		curIdx = -1;
//		aPicMC = new Array();
//		
//		//显示loading动画
//		eff_loading.start();
//		
//		snake.addEventListener(AgiSnake.EVENTTYPE_A_NODE_OK, onLoadAPicOK);
//		snake.Create(aUrl);
//		snake.JumpTo(0);//从0开始启动加载
//	}
//
//	public function Clear() {
//		T.p("!!!!!!!!! SamrtBanner.Clear");
//		//不显示loading动画
//		eff_loading.clear();
//		
//		snake.Release();
//		snake.removeEventListener(AgiSnake.EVENTTYPE_A_NODE_OK, onLoadAPicOK);
//		
//		if(curSwitcher!=null){
//			curSwitcher.Clear();
//		}
//		
//		//释放资源
//		if(aPicMC!=null){
//			for(var i : int = 0;i < aPicMC.length;i++) {
//				mc.removeChild(aPicMC[i]);
//			}
//		}
//		
//		aPicMC = null;
//		
//		//垃圾收集
//		Util.GC();
//	}
//
//	///,当加载一个图片成功
//	private function onLoadAPicOK(e : KEvent) {
//		T.p("onLoadAPicOK");
//		
//		//----向外发布这个事件
//		this.dispatchEvent(e.clone());
//		
//		//----------------
//		var content : DisplayObject = e.info.content;
//		var idx:int=e.info.idx;
//		
//		T.p(idx);
//		
//		var mc_pic : MovieClip = new MovieClip();
//		mc_pic.addChild(content);
//		mc_pic.idx=idx;//自己有一个顺序号，用来表示自己要跳转到哪里用的
//		
//		mc_pic.visible = false;
//		
//		//需要加上跳转的地址
//		if(aGotoUrl!=null){
//			var aimUrl:String=aGotoUrl[idx];
//			if(aimUrl!=""){
//				Util.OnClick(mc_pic, onClickPic);
//			}
//		}
//		
//		//--测试用的排放位置的
//		//mc_pic.x=Math.floor(aPicMC.length%3)*150;
//		//mc_pic.y=Math.floor(aPicMC.length/3)*150;
//		
//		aPicMC.push(mc_pic);
//		
//		mc.addChild(mc_pic);
//		
//		//如果是第一张图片就要马上显示
//		if(aPicMC.length == 1) {
//			T.p("第一个图片加载到了");
//			curIdx = 0;//表示当前显示的是第一张
//			
//			//第一张先要自动出现
//			//mc_pic.visible = true;
//			switchPics(null,mc_pic,firstEff);
//			
//			//第一章图片时就不显示loading动画了
//			eff_loading.clear();
//		}
//	}
//
//	//切换一下图片，从本张图片切换到另一张
//	//如果Clear了就别再执行这个了
//	//aimIdx是要切换到的图片的索引
//	public function Flip(effType:int=1,aimIdx:int=-1) {
//		T.p("Flip");
//		if(aPicMC==null){
//			T.p("!!还没加载到图片呢!");
//			return;
//		}
//		
//		if(aimIdx!=-1&&aimIdx==curIdx){//如果是手动切换模式，则如果是一样的则不切换
//			return;
//		}
//		
//		if(aPicMC.length > 1) {//1张是不需要切换的,干的好
//			var mc_cur : MovieClip = MovieClip(aPicMC[curIdx]);
//			
//			if(aimIdx==-1){//-1表示切换到下一张
//				curIdx++;
//				
//			}else{
//				curIdx=aimIdx;
//			}
//			curIdx %= aPicMC.length;
//			
//			
//			var mc_next : MovieClip = MovieClip(aPicMC[curIdx]);
//			
//			//切换第一张到下一张
//			//mc_cur.visible = false;
//			//mc_next.visible = true;
//			switchPics(mc_cur,mc_next,effType);
//		}
//	}
//	
//	//按指定效果切换两张图片,这个以后可以扩充的是
//	private function switchPics(mc_pre:MovieClip,mc_next:MovieClip,effType:int){
//	
//		T.p("switchPics",effType,mc_pre==null?"null":mc_pre.name,mc_next.name);
//		if(curSwitcher!=null){
//			curSwitcher.Clear();
//		}
//		
//		switch(effType){
//			case EFFTYPE_ALPHA:
//			switcherAlpha.Start(mc_pre, mc_next,1);
//			curSwitcher=switcherAlpha;
//			break;
//			case EFFTYPE_BLACK:
//			switcherBlack.Start(mc_pre, mc_next,0.5);
//			curSwitcher=switcherBlack;
//			break;
//			case EFFTYPE_WHITE:
//			switcherWhite.Start(mc_pre, mc_next,0.3);
//			curSwitcher=switcherWhite;
//			break;
//			case EFFTYPE_MASK:
//			switcherMask.Start(mc_pre, mc_next,0.5);
//			curSwitcher=switcherMask;
//			break;
//			case EFFTYPE_NONE:
//			switcherNone.Start(mc_pre, mc_next,0);
//			curSwitcher=switcherNone;
//			break;
//		}
//		
//		//通知外部说切换了图片
//		this.dispatchEvent(new KEvent(EVENTTYPE_CHANGEPIC,{idx:curIdx}));
//	}
//	
//	////////////
//	//被通知点了一个封面
//	private function onClickPic(e:MouseEvent){
//		var mc_pic:MovieClip=MovieClip(e.currentTarget);
//		var idx:int=mc_pic.idx;
//		var aimUrl:String=aGotoUrl[idx];
//		
//		Util.getURL(aimUrl);
//	}
} //end of class
}